Reamostragem aplicada a dados agronômicos
Introdução à Estatística
Universidade Estadual de Feira de Santana (UEFS)
bootObjetivo Central
Compreender o método bootstrap como alternativa não paramétrica para inferência estatística e aplicá-lo em R a dados reais de agronomia.
A inferência paramétrica tradicional exige pressupostos fortes:
Na prática agronômica:
“Deixe os dados falarem por si mesmos”
Bradley Efron propôs usar os próprios dados como população de referência, gerando múltiplas amostras por reamostragem com reposição.
Resultado: inferência sem necessidade de assumir distribuição teórica.
Definição formal:
Dado um conjunto de dados observados \(\mathbf{x} = (x_1, x_2, \ldots, x_n)\), o bootstrap consiste em:
| Passo | Ação |
|---|---|
| 1 | Obtenha a amostra original com \(n\) observações |
| 2 | Sorteie \(n\) valores com reposição da amostra |
| 3 | Calcule a estatística desejada (média, mediana, etc.) |
| 4 | Repita os passos 2–3 por \(B\) vezes (\(B \geq 1000\)) |
| 5 | Use as \(B\) estimativas para construir a distribuição bootstrap |
Amostra original: {4, 7, 3, 9, 5}
\[IC_{1-\alpha} = \left[\hat{\theta}^{*}_{\alpha/2}, \; \hat{\theta}^{*}_{1-\alpha/2}\right]\]
Usa diretamente os quantis da distribuição bootstrap.
Corrige viés e assimetria da distribuição bootstrap. Recomendado para amostras pequenas e distribuições assimétricas.
\[IC = \hat{\theta} \pm z_{\alpha/2} \times SE_{boot}\]
Assume normalidade da distribuição bootstrap — geralmente válido para \(B\) grande.
O pacote boot (Canty & Ripley) é a implementação de referência em R, baseada no livro Bootstrap Methods and Their Application (Davison & Hinkley, 1997).
# Dados simulados: massa seca (g) de plantas
# em experimento com adubação orgânica
set.seed(2026)
biomassa <- data.frame(
tratamento = rep(c("Controle", "Adubo_Org"), each = 15),
massa_g = c(
rnorm(15, mean = 12.3, sd = 3.1), # controle
rnorm(15, mean = 16.8, sd = 4.2) # adubação
)
)
head(biomassa)# Função estatística para o boot()
media_func <- function(dados, indices) {
return(mean(dados[indices]))
}
# Extrair dados do grupo controle
controle <- biomassa$massa_g[biomassa$tratamento == "Controle"]
# Bootstrap com B = 2000 reamostragens
set.seed(42)
boot_controle <- boot(data = controle,
statistic = media_func,
R = 2000)
# Resultado
print(boot_controle)Interpretação: se o IC de 95% para a diferença entre tratamentos não inclui zero, há evidência de que o adubo orgânico teve efeito significativo sobre a biomassa, sem depender da suposição de normalidade.
# Converter para data.frame
boot_df <- data.frame(media_boot = boot_controle$t)
# Histograma com ggplot2
ggplot(boot_df, aes(x = media_boot)) +
geom_histogram(aes(y = after_stat(density)),
bins = 40, fill = "#034EA2", alpha = 0.7) +
geom_density(color = "red", linewidth = 1) +
geom_vline(xintercept = mean(controle),
linetype = "dashed", color = "black") +
labs(
title = "Distribuição Bootstrap da Média (Controle)",
subtitle = paste0("B = 2000 | Média original = ",
round(mean(controle), 2), " g"),
x = "Média bootstrap (g)",
y = "Densidade"
) +
theme_minimal(base_size = 14)# Bootstrap da diferença de médias
adubo <- biomassa$massa_g[biomassa$tratamento == "Adubo_Org"]
diff_func <- function(dados, indices) {
d <- dados[indices, ]
mean(d$massa_g[d$tratamento == "Adubo_Org"]) -
mean(d$massa_g[d$tratamento == "Controle"])
}
set.seed(42)
boot_diff <- boot(data = biomassa,
statistic = diff_func,
R = 2000)
# IC da diferença
boot.ci(boot_diff, conf = 0.95, type = "bca")Se o IC BCa da diferença não inclui 0 → a adubação orgânica teve efeito significativo na biomassa.
iris do RPetal.Length) por espécieObrigado!
Luiz Diego Vidal Santos
Universidade Estadual de Feira de Santana (UEFS)
UEFS — Introdução à Estatística | Tema 7 — Bootstrap e Inferência Não Paramétrica